1. Technical Field
Present invention embodiments relate to system configuration, and more specifically, to configuring software systems with various software components utilizing a configuration profile.
2. Discussion of the Related Art
In order to configure a heterogeneous software system containing different software components, each software component must typically be configured independently. This is accomplished either through performance of a series of manual steps, or with use of a tool. Tools for configuration of software components generally focus on a specific component within a potentially heterogeneous software system, and utilize a wizard format (e.g., a series of graphical user interface (GUI) screens) to perform the product configuration. Since the wizard format traverses a configuration from beginning to end, a user has difficulty terminating the wizard prior to completion and subsequently continuing from the point of the termination (without traversing through the previously navigated portions of the wizard). Further, the wizard format does not enable steps in the component configuration process to be skipped when these steps were performed manually, or as a part of configuring a different component of the software system.
Thus, extraneous tools are used to configure a software system since each component of the software system is associated with a corresponding tool. In the absence of a tool, manual steps must be followed that can be tedious and error prone when repeated for configuring multiple instances of a software system. The usefulness of the tools become negatively impacted when the tools do not allow users to perform the required steps for the configuration. Even when a tool does allow for configuration of different heterogeneous software components, the configuration steps are separated into different parts of the tool, thereby requiring the user to typically configure one software component at a time. When software components are codependent and interleave configuration steps, this interleaving is significantly complex. In this case, the user manually switches between different parts of the tool for the configuration, thereby leading to errors in execution of the correct sequence of configuration steps for the different software components.
Profiles have been introduced that decompose configuration steps into tasks that are independently performed. However, each profile focuses on a specific component of the overall software system, where interleaving of tasks is difficult. Further, configuration steps exist that need to be performed for various components depending on the nature of the system as a development environment (e.g., created for development work) or a production environment (e.g., a system for final deployment in production). Moreover, the same parameters may need different values for these environment types. Current tools for configuring an environment do not holistically configure a software system nor distinguish between configuring a system providing a development environment and a system providing a production environment.